关系型与非关系型数据库
关系型数据库和非关系型数据库
1.关系型数据库
关系型数据库就是由二维表及其之间的关系所组成的数据组织。
关系: 关系就是指一张二维表,每个关系都有一个关系名,通常称之为表名。
元组: 元组指的是二维表中的一行,通常称之为记录。
属性: 属性指的是二维表中的一列,通常称之为字段。
域: 指的是属性的取值范围,在数据库中代表字段的取值限制。
关键字: 可以标识唯一一组元组数据的属性,也就是数据库中的主键。
关系模式: 指对关系的描述 > 关系名(属性1,属性2…),在数据库中称为表结构。
关系型数据库的有点主要有:
1.容易理解 2. 易于维护 3.使用方便
2.非关系型数据库
非关系型数据库是指非关系型的、分布式的、且一般不遵守ACID规则的数据存储系统。
非关系型数据库提出另一种理念,例如,以键值对存储,且结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这 样就不会局限于固定的结构,可以减少一些时间和空间的开销。使用这种方式,用户可以根据需要去添加自己需要的字段,这样,为了获取用户的不同信息,不需要 像关系型数据库中,要对多表进行关联查询。仅需要根据id取出相应的value就可以完成查询。但非关系型数据库由于很少的约束,他也不能够提供像SQL 所提供的where这种对于字段属性值情况的查询。并且难以体现设计的完整性。他只适合存储一些较为简单的数据,对于需要进行较复杂查询的数据,SQL数 据库显的更为合适。
3.使用场景
- 关系型数据库最大的特点就是事务的一致性,具有ACID的特性,因此适合大多数对数据一致性要求高的系统,如典型的银行系统。
- 但是关系型数据库的读写性能较差,所以在一些网页应用,如微博这类SNS应用中,对于数据一致性要求不是很高, 所以并发读写性能较高的非关系型数据库非常适合这类应用。
- 关系数据库的另一个特点就是其具有固定的表结构,因此,其扩展性极差,而在SNS中,系统的升级,功能的增加,往往意味着数据结构巨大变动,这一点关系型数据库也难以应付,需要新的结构化数据存储。于是,非关系型数据库应运而生,由于不可能用一种数据结构化存储应付所有的新的需求,因此,非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。
必须强调的是,数据的持久存储,尤其是海量数据的持久存储,还是需要一种关系数据库这员老将。